package com.uu.ssm.model.service;


import com.uu.ssm.constants.Constants;
import com.uu.ssm.model.dao.WorkerMapper;
import com.uu.ssm.model.vo.Worker;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class WorkerService {

    @Autowired
    private WorkerMapper mapper;
    /**
     * 注册工人用户
     *
     * 此方法用于向系统中注册一个新的工人用户它首先检查工人用户的用户名和密码是否为空，
     * 如果都为空，则返回-1，表示信息不完整接下来，它检查数据库中是否已存在相同的用户名，
     * 如果存在，则返回-2，表示该用户已注册如果上述检查都通过，则将工人用户信息插入数据库，
     * 并返回插入结果
     *
     * @param worker 待注册的工人用户对象，包含用户名和密码等信息
     * @return 注册结果如果返回-1，表示用户名或密码为空；如果返回-2，表示用户名已存在；
     *         否则，返回数据库插入操作的结果
     */
    public int register(Worker worker) {
        // 检查用户名和密码是否为空
        if (StringUtils.isAllBlank(
                worker.getPassword(), worker.getUsername()
        )) {
            return Constants.NUM_MINUS_ONE;
        }
    
        // 检查用户名是否已注册
        if (ObjectUtils.allNotNull(
                mapper.selectByName(worker.getUsername())
        )){
            return Constants.NUM_MINUS_TWO;
        }
    
        // 插入新的工人用户信息到数据库
        return mapper.inserWorker(worker);
    }

    public boolean login(Worker worker) {
        return ObjectUtils.allNotNull(mapper.selectByNameAndPwd(worker));
    }

    public List<Worker> selectAllWorkers(){
        return mapper.selectAll();
    }

    public void updateWorker(Worker worker){
        mapper.updateWorker(worker);
    }

    public void deleteWorker(Integer id){
        mapper.deleteById(id);
    }
}
